package com.ruicar.afs.cloud.common.modules.dto.mq.loan.contractdto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumDeserializer;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumSerializer;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.AddressTypeEnum;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.ValidStatusEnum;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.WhetherEnum;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @param
 * @author yk.Li
 * @description 合同客户地址明细
 * @date 2020/7/10
 */
@Data
public class ContractCustAddressDetailsDTO {
    /**
     * 客户号
     */
    @JSONField(name = "custNo")
    private Long custId;
    /**
     * 地址类型 枚举值：户籍地址、居住地址、单位地址
     */
    @JSONField(name = "addressType", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private AddressTypeEnum addressType;
    /**
     * 省份
     */
    @JSONField(name = "province")
    private String province;
    /**
     * 城市
     */
    @JSONField(name = "city")
    private String city;
    /**
     * 区/县
     */
    @JSONField(name = "county")
    private String county;
    /**
     * 街道
     */
    @JSONField(name = "street")
    private String street;
    /**
     * 详细地址
     */
    @JSONField(name = "address")
    private String detailAddress;
    /**
     * 行政区划代码 国标码
     */
    @JSONField(name = "gbCode")
    private String gbCode;
    /**
     * 邮政编码
     */
    @JSONField(name = "postalCode")
    private String postalCode;
    /**
     * 是否默认通讯地址 枚举值：是、否
     */
    @JSONField(name = "isDefault", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private WhetherEnum isDefault;
    /**
     * 有效状态 枚举值：有效、无效
     */
    @JSONField(name = "status", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private ValidStatusEnum validStatus;

    /**
     * 房产类型
     */
    @JSONField(name = "houseType")
    private String houseType;
    /**
     * 房产面积
     */
    @JSONField(name = "houseArea")
    private String houseArea;
    /**
     * 房产起始时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(name = "houseStartDate")
    private Date houseStartDate;

}
